// 函数作为返回值
const { log } = console
// 函数生成函数
function makeFn() {
  let msg = 'Hello Function'
  return function () {
    log(msg)
  }
}
// const fn = makeFn();
// fn();
makeFn()() // 第一个小括号返回一个函数 第二个小括号调用返回的函数

// once 不管用户点多少次按钮 只执行一次
function once(fn) {
  let done = false
  return function () {
    if (!done) {
      done = true
      // return 可以知道返回的是成功还是失败
      return fn.apply(this, arguments)
    }
  }
}
let pay = once(function (money) {
  log(`支付${money}RMB`)
})
pay(5)
pay(5)
pay(5)
pay(5)
pay(5)
